#include "SharedMemory.h"
#include <stdio.h>

#include <iostream>
SharedMemory::SharedMemory(int size){
	this->size = size;
	direccion = NULL;
	id=-1;
}

bool SharedMemory::inicializar(){
	id = shmget(IPC_PRIVATE, size, 0666|IPC_CREAT);
	if(id == -1){
		perror("No se puede crear el area de memoria.");
		return false;
	}

	direccion = shmat(id, NULL,0);
	if(direccion == (void*) -1){
		perror("No se puede mapear la memoria compartida.");
		direccion = NULL;
		return false;
	}
	return true;
}

SharedMemory::~SharedMemory(){
	if(direccion != NULL)
		shmdt(direccion);
	if(id != -1)
		shmctl(id, IPC_RMID, NULL);
}
